home *** CD-ROM | disk | FTP | other *** search
/ Shareware Super Platinum 8 / Shareware Super Platinum 8.iso / mac / PROGTOOL / WC40REC.ZIP;1 / WCTYPE.PAS < prev    next >
Encoding:
Pascal/Delphi Source File  |  1994-06-02  |  32.1 KB  |  996 lines

  1. {$I WCDEFINE.INC}
  2.  
  3. unit WcType;
  4.  
  5. (**************************************************************************
  6.  
  7. Global record structure for Wildcat! version 4.0.
  8. Copyright 1986,94 Mustang Software Inc. All rights reserved.
  9.  
  10. Last Revised 04-07-94
  11.  
  12. Revision 'P'
  13.  
  14. Resonsibility: Paul Davis
  15.  
  16. **************************************************************************)
  17.  
  18. interface
  19.  
  20. uses
  21.   Dos
  22. {$IFDEF OPRO}
  23.   ,OpDate;
  24. {$ELSE}
  25.   {$IFDEF TPro}
  26.   ,TpDate;
  27.   {$ELSE}  {!!.N}
  28.   ;
  29.  
  30. type
  31.   Date = Word;
  32.   Time = LongInt;
  33.   DateTimeRec = record
  34.     D : Date;
  35.     T : Time;
  36.   end;
  37.   {$ENDIF}
  38. {$ENDIF}
  39.  
  40. (***** Maximum limits ****************************************************)
  41.  
  42. const
  43.   MaximumConfs    = 32760;
  44.   MaximumFiles    = 32760;
  45.   MaximumMsgs     = 65520;
  46.   MaximumProfiles = 1000;
  47.   MaximumDoors    = 1000;
  48.   MaximumIdle     = 1000;
  49.   MaximumLang     = 1000;
  50.  
  51. (***** Various bit set types *********************************************)
  52.  
  53. type
  54.   PNodeInfoBits   = ^TNodeInfoBits;
  55.   TNodeInfoBits   = array [1..32] of Byte;
  56.   TArray1000Bits  = array [1..126] of Byte;
  57.   TArray32768Bits = array [1..4096] of Byte;
  58.  
  59. (***** Modem profile file (*.MDM) ****************************************)
  60.  
  61. const
  62.   mpFixedRate  = $01;
  63.   mpCtsRtsFlow = $02;
  64.   mpDropOnExit = $04;
  65.  
  66. type
  67.   TGetBaud   = (gbResult1, gbResult2, gbByCR, gbDTE);
  68.   TAnswer    = (aRing, aResult, aAutoAnswer);
  69.   TInterface = (iSerial, iDigiboard, iFossil, iNone);
  70.   TBaudType  = (bNone, b300, b1200, b2400, b4800, b7200, b9600, b12000,
  71.                 b14400, b16800, b19200, b28800, b38400, b57600, b115200);
  72.  
  73. const
  74.   BaudNumber : array [TBaudType] of LongInt = (0, 300, 1200, 2400, 4800, 7200,
  75.                                                9600, 12000, 14400, 16800, 19200,
  76.                                                28800, 38400, 57600, 115200);
  77.  
  78. type
  79.   PModemProfilePtr  = ^TModemProfile;
  80.   TModemProfile     = record
  81.                         Version       : Word;
  82.                         ModemName     : String[30];
  83.                         InitBaud      : LongInt;
  84.                         CommPort,
  85.                         CommIrq,
  86.                         CarrierDelay,
  87.                         pFlags,
  88.                         FifoTrigger   : Byte;
  89.                         CommBase,
  90.                         RingDelay,
  91.                         DropDtrDelay,
  92.                         PreLogDelay,
  93.                         ResultDelay,
  94.                         ResetDelay    : Word;
  95.                         AnswerPhone   : TAnswer;
  96.                         DetermineBaud : TGetBaud;
  97.                         InterfaceType : TInterface;
  98.                         RingStr,
  99.                         AnswerStr,
  100.                         CallerIdStr,                  {!!.P}
  101.                         ModemReset,
  102.                         OnHook,
  103.                         OffHook,
  104.                         ErrorStr,
  105.                         ModemInit     : String[60];
  106.                         BaudStrings   : array [1..20] of String[20];
  107.                         BaudRates     : array [1..20] of LongInt;
  108.                         DumpStr,
  109.                         ResetStr,
  110.                         WriteStr      : String[10];
  111.                         SetupStr      : array [1..3] of String[40];
  112.                         Notes         : array [1..3] of String[64];
  113.                         Reserved      : array [1..50] of Byte;
  114.                       end;
  115.  
  116. (***** Makewild file (MAKEWILD.DAT) **************************************)
  117.  
  118. const
  119.   mwLogOffIfNotVerified = $00000001;
  120.   mwSysopDropToDos      = $00000002;
  121.   mwShowSec             = $00000004;
  122.   mwUseClearScreens     = $00000008;
  123.   mwFreeFormPhone       = $00000010;
  124.   mwReserved1           = $00000020;
  125.   mwOverwriteChatFiles  = $00000040;
  126.   mwLockOutForSecError  = $00000080;
  127.   mwReserved2           = $00000100;
  128.   mwDynamicFileKeys     = $00000200;
  129.   mwSysopReadPrivate    = $00000400;
  130.   mwShowUserSec         = $00000800;
  131.   mwPrinterOnline       = $00001000;
  132.   mwBulletsOptional     = $00002000;
  133.   mwTerminateOnDoors    = $00004000;
  134.   mwAutoId              = $00008000;
  135.   mwForce8N1            = $00010000;
  136.   mwReserved3           = $00020000;
  137.   mwCopyOnCD            = $00040000;
  138.   mwIndexLongDesc       = $00080000;
  139.   mwAllowLocalUpgrades  = $00100000;
  140.   mwPreferredChatMode   = $00200000;
  141.   mwLanguageAtLogon     = $00400000;
  142.  
  143.   mwTCBulletins         = $0001;
  144.   mwTCNews              = $0002;
  145.   mwTCFiles             = $0004;
  146.   mwTCDetailDL          = $0008;
  147.   mwTCCheckDups         = $0010;
  148.   mwTCFaxSupport        = $0020;
  149.  
  150.   mwCTUserAliasAllowed  = $00000001;
  151.   mwCTActionWords       = $00000002;
  152.   mwCTPaging            = $00000004;
  153.   mwCTPrivateChan       = $00000008;
  154.   mwCTChangeTopic       = $00000010;
  155.  
  156. type
  157.   TModerate        = (mdAll, mdPrivate, mdPublic, mdNone);
  158.   TSwapMethod      = (tDisk, tEms, tXms, tNoSwap);
  159.   TMonitorType     = (sColor, sMono, sAuto);
  160.   TSystemAccess    = (cOpen, cClosed, cClosedComment, cClosedQuestionnaire);
  161.   TDBProtect       = (dbNone, dbMarkMode, dbSaveMode);
  162.   TScreenBlank     = (sbNone, sbBox, sbBlackOut);
  163.   TConsoleSec      = (csNone, csPassword, csNoConsole);
  164.   TSettingSec      = (ssYes, ssMessage, ssNo);
  165.   TNetSupportType  = (NoNet, Novell, MsNet);
  166.   TSavePacketLevel = (plNone, plNetStatus, plAll);
  167.   TColorMenus      = (tAscii, tAnsi, tRIP);
  168.   TDriveTable      = array [1..26] of Byte;
  169.   TOverlayType     = (otDisk, otEms, otXms);
  170.   TDupUserType     = (duNone, duNoneChk, duAllow);
  171.  
  172.  
  173.  
  174.   TCBaudLimitRec = record
  175.                      MaxPacket : Word;
  176.                      MaxConf   : Word;
  177.                    end;
  178.  
  179.   TPackerRec = record
  180.                  Letter          : Char;
  181.                  Description     : String[30];
  182.                  Extension       : String[3];
  183.                  PackerExe       : String[8];
  184.                  PackerCmdLine   : String[40];
  185.                  UnpackerExe     : String[8];
  186.                  UnpackerCmdLine : String[40];
  187.                end;
  188.  
  189.   TExcludeBullRec = record
  190.                      Conference : Word;
  191.                      BullNumber : Word;
  192.                     end;
  193.  
  194.   PMakeWildRec = ^TMakeWildRec;
  195.   TMakeWildRec = record
  196.                    MWVersion           : String[5];
  197.                    SysopName           : String[25];
  198.                    Reserved1           : String[5];
  199.                    FirstCall           : String[25];
  200.                    PacketId            : String[8];
  201.                    Phone               : String[25];
  202.                    BBSName             : String[30];
  203.                    FileDataBasePath,
  204.                    UserDataBasePath,
  205.                    NodeInfoPath,
  206.                    ReservedPath,
  207.                    DoorFilePath,
  208.                    ModemFilePath,
  209.                    ChatFilePath,
  210.                    LanguagePath        : DirStr;
  211.                    NewuserSec          : String[10];
  212.                    MonitorType         : TMonitorType;
  213.                    CloseOption         : TSystemAccess;
  214.                    Network             : TNetSupportType;
  215.                    DatabaseMode        : TDBProtect;
  216.                    ScreenBlankMode     : TScreenBlank;
  217.                    ScrollBackBuffer    : Word;
  218.                    ExtLtr              : array [1..10] of Char;
  219.                    ExtUpBatch,
  220.                    ExtDnBatch,
  221.                    ExtName             : array [1..10] of String[12];
  222.                    ExtBatchDriven      : array [1..10] of Boolean;
  223.                    ExtraMemForOverlay,
  224.                    NodeId,
  225.                    SecTries            : Byte;
  226.                    MaxFileAreas,
  227.                    MaxConfAreas,
  228.                    FirstCallLimit      : Word;
  229.                    MwFlags             : LongInt;
  230.                    DateFormat,
  231.                    TimeFormat          : String[40];
  232.                    RegString           : String[7];
  233.                    FlexEventInactivity : Word;
  234.                    FlexEventForceTime  : Time;
  235.                    LockDriveTable      : TDriveTable;
  236.                    DefaultExt          : ExtStr;
  237.                    ThumbNailFile       : String[12];
  238.                    ConsolePassword     : String[14];
  239.                    ConsoleSec          : TConsoleSec;
  240.                    ChangePhone,
  241.                    ChangeAlias,
  242.                    ChangeBDate         : TSettingSec;
  243.                    SwapMethod          : TSwapMethod;
  244.                    Packer              : array [1..10] of TPackerRec;
  245.                    TCCity              : String[30];
  246.                    TCFlags             : Word;
  247.                    PreScanArea         : Word;
  248.                    SavePacketLevel     : TSavePacketLevel;
  249.                    TCMaxPerBaud        : array [TBaudType] of TCBaudLimitRec;
  250.                    TCExcludeBulls      : array [1..40] of TExcludeBullRec;
  251.                    MaxChannelSize      : Word;
  252.                    ChatTimeOut         : Word;
  253.                    TalkTimeOut         : Word;
  254.                    ChatWaitTime        : Byte;
  255.                    ChatModerate        : TModerate;
  256.                    ChatFlags           : LongInt;
  257.                    ModemProfile        : TModemProfile;
  258.                    HoldOverlay         : TOverlayType;
  259.                    DupUserLevel        : TDupUserType;
  260.                    Reserved            : array [1..198] of Byte;
  261.                  end;
  262.  
  263. (***** Security profiles (SECLEVEL.DAT) **********************************)
  264.  
  265. type
  266.   TSysopAccess    = (saNo, saYes, saMaster, saNetStatus);
  267.   TRatioAction    = (raNothing, raWarn, raNoDownloads);
  268.   TMenuItemAccess = array [1..8] of Byte;
  269.   TProfileType    = (ptFullProfile, ptSecondary);
  270.   TUploadType     = (utNoDupes, utWarnOfDupe, utIgnore);
  271.  
  272. const
  273.   pfAscii         = $00000001;
  274.   pfXmodem        = $00000002;
  275.   pfXmodemCrc     = $00000004;
  276.   pfXmodem1k      = $00000008;
  277.   pfXmodem1kG     = $00000010;
  278.   pfYmodem        = $00000020;
  279.   pfYmodemG       = $00000040;
  280.   pfKermit        = $00000080;
  281.   pfZmodem        = $00000100;
  282.   pfExternal1     = $00000200;
  283.   pfExternal2     = $00000400;
  284.   pfExternal3     = $00000800;
  285.   pfExternal4     = $00001000;
  286.   pfExternal5     = $00002000;
  287.   pfExternal6     = $00004000;
  288.   pfExternal7     = $00008000;
  289.   pfExternal8     = $00010000;
  290.   pfExternal9     = $00020000;
  291.   pfExternal10    = $00040000;
  292.  
  293.   sfFastLogin     = $00080000;
  294.   sfOverwrite     = $00100000;
  295.   sfShowPWFiles   = $00200000;
  296.   sfTCFileAccess  = $00400000;
  297.   sfUpOverTime    = $00800000;
  298.   sfDnOverTime    = $01000000;
  299.   sfDictionary    = $02000000;
  300.   sfDistMail      = $04000000;
  301.   sfModifyUpload  = $08000000;
  302.  
  303.   cfChatSysop     = $0001;
  304.   cfActionWords   = $0002;
  305.   cfUninvite      = $0004;
  306.   cfPageUsers     = $0008;
  307.   cfModerator     = $0010;
  308.   cfChatAlias     = $0020;
  309.  
  310.   sConfRead       = $01;
  311.   sConfWrite      = $02;
  312.   sConfJoin       = $04;
  313.  
  314.   sFileList       = $01;
  315.   sFileDown       = $02;
  316.   sFileUp         = $04;
  317.  
  318. type
  319.   PSecHeader = ^TSecHeader;
  320.   TSecHeader = record
  321.                  ProfileName : String[10];
  322.                  ProfileType : TProfileType;
  323.                end;
  324.  
  325.   PSecRec = ^TSecRec;
  326.   TSecRec = object
  327.               ProfileName     : String[10];
  328.               ProfileType     : TProfileType;
  329.               ExpiredName     : String[10];
  330.               DisplayName     : String[8];
  331.               NodeAccess      : TNodeInfoBits;
  332.               DoorAccess      : TArray1000Bits;
  333.               MenuItemAccess  : TMenuItemAccess;
  334.               SysopStatus     : TSysopAccess;
  335.               RatioAction     : TRatioAction;
  336.               UploadComp,
  337.               MaxRatio        : Byte;
  338.               Menus           : Char;
  339.               ChatFlags       : Word;
  340.               sFlags          : LongInt;
  341.               ExpireDate      : Date;
  342.               DailyTimeLimit,
  343.               MaxLogon,
  344.               VerifyBDate,
  345.               VerifyPhone,
  346.               MaxDL,
  347.               MaxDK,
  348.               MaxKRatio,
  349.               MaxConfAreas,
  350.               MaxFileAreas,
  351.               FaxFlags        : Word;
  352.               DoorProfile     : String[10];
  353.               UploadAccess    : TUploadType;
  354.               Reserved        : array [1..36] of Byte;
  355.             end;
  356.  
  357. (***** Conference name list (CONFDESC.IX, CONFDESC.UX) *******************)
  358.  
  359. type
  360.   TConfList = record
  361.                 ConfName : String[25];
  362.                 ConfNum  : Word;
  363.               end;
  364.  
  365. (***** Conference list (CONFDESC.DAT) ************************************)
  366.  
  367. const
  368.   cfPromptToKillMsg    = $0001;
  369.   cfHighAscii          = $0002;
  370.   cfAllowCarbon        = $0004;
  371.   cfReserved1          = $0008;
  372.   cfReserved2          = $0010;
  373.   cfReturnReceipt      = $0020;
  374.   cfLongAddress        = $0040;
  375.   cfUseAlias           = $0080;
  376.   cfAllowAttach        = $0100;
  377.   cfPromptToKillAttach = $0200;
  378.   cfShowCtrlLines      = $0400;
  379.  
  380. type
  381.   TMailType  = (mtNormalPublicPrivate,
  382.                 mtNormalPublic,
  383.                 mtNormalPrivate,
  384.                 mtFidoNetmail,
  385.                 mtInternetEmail,
  386.                 mtInternetNewsgroup);
  387.   TValidName = (vnYes, vnNo, vnPrompt);
  388.  
  389. const mtAllowPrivate = [mtNormalPublicPrivate,
  390.                         mtNormalPrivate,
  391.                         mtFidoNetmail,
  392.                         mtInternetEmail];
  393.       mtForcePrivate = [mtNormalPrivate,
  394.                         mtFidoNetmail,
  395.                         mtInternetEmail];
  396.  
  397. type
  398.   PConfDesc = ^TConfDesc;
  399.   TConfDesc = record
  400.                 ConfName,
  401.                 ConfOp        : String[25];
  402.                 ConfShortName : String[12];
  403.                 ConfMail      : TMailType;
  404.                 DoorAccess    : TArray1000Bits;
  405.                 BullPath,
  406.                 QuesPath,
  407.                 MenuPath,
  408.                 HelpPath,
  409.                 DisplayPath,
  410.                 MsgPath,
  411.                 AttachPath    : DirStr;
  412.                 Reserved1     : Byte;
  413.                 cFlags,
  414.                 ConfNumber    : Word;
  415.                 ValidNames    : TValidName;
  416.                 MaxMessages,
  417.                 MaxFileAreas  : Word;
  418.                 Reserved      : array [1..50] of Byte;
  419.               end;
  420.  
  421. (***** File area name file (FILEAREA.IX, FILEAREA.UX) ********************)
  422.  
  423. type
  424.   TFileList = record
  425.                 AreaName   : String[30];
  426.                 AreaNumber : Word;
  427.               end;
  428.  
  429. (***** File area file (FILEAREA.DAT) *************************************)
  430.  
  431. type
  432.   PFileAreaRec = ^TFileAreaRec;
  433.   TFileAreaRec = record
  434.                    AreaName : String[30];
  435.                    AreaPath : DirStr;
  436.                    Reserved : array [1..20] of Byte;
  437.                  end;
  438.  
  439. (***** Language file (LANGDESC.DAT) **************************************)
  440.  
  441. type
  442.   PLangDesc = ^TLangDesc;
  443.   TLangDesc = record
  444.                 Language    : String[8];
  445.                 Description : String[73];
  446.                 YesChar     : Char;
  447.                 NoChar      : Char;
  448.               end;
  449.  
  450. (***** Door file (DOOR.DAT) **********************************************)
  451.  
  452. const
  453.   diMultiUser = $01;
  454.   diInUse     = $02;
  455.   diMenuHook  = $04;
  456.  
  457. type
  458.   TDoor = record
  459.             diName   : String[20];
  460.             diBat    : String[8];
  461.             diDisp   : String[8];
  462.             diFlags  : Byte;
  463.             Reserved : array [1..20] of Byte;
  464.           end;
  465.  
  466. (***** Idle program data (ILDEPGM.DAT) ***********************************)
  467.  
  468. type
  469.   PIdleProgram = ^TIdleProgram;
  470.   TIdleProgram = record
  471.                    Name      : String[30];
  472.                    ShellPath : PathStr;
  473.                    Password  : String[14];
  474.                    Reserved  : array [1..20] of Byte;
  475.                  end;
  476.  
  477. (***** Master info file (NODEINFO.DAT record 0) **************************)
  478.  
  479. type
  480.   PMasterInfo = ^TMasterInfo;
  481.   TMasterInfo = record
  482.                   VersionId     : String[5];
  483.                   ActiveNodes   : TNodeInfoBits;
  484.                   TotalCalls,
  485.                   TotalUsers,
  486.                   TotalFiles,
  487.                   TotalMessages : LongInt;
  488.                   TempCalls,
  489.                   TempMsgs,
  490.                   TempDownloads,
  491.                   TempUploads   : Word;                   {!!.P}
  492.                   ReservedWords : array[1..8] of Byte;    {!!.P}
  493.                   TempReset     : DateTimeRec;
  494.                   HighestUserId : LongInt;
  495.                   ChatCount     : Byte;
  496.                   Reserved      : array [1..160] of Byte;
  497.                 end;
  498.  
  499. (***** Nodeinfo file (NODEINFO.DAT) **************************************)
  500.  
  501. const
  502.   niLptr        = $00000001;
  503.   niPage        = $00000002;
  504.   niBell        = $00000004;
  505.   niKybd        = $00000008;
  506.   niLocalNext   = $00000010;
  507.   niScreenWrite = $00000020;
  508.   niEventNext   = $00000040;
  509.   niBringDown   = $00000080;
  510.   niKillCaller  = $00000100;
  511.   niPagingSysop = $00000200;
  512.   niOnLocally   = $00000400;
  513.   niMNPConnect  = $00000800;
  514.   niSysopNext   = $00001000;
  515.   niUseVgaMode  = $00002000;
  516.   niCapture     = $00004000;
  517.   niStayDown    = $00008000;
  518.  
  519. type
  520.                                                                                      {vvGo Awayvv}
  521.   TNodeStatus = (nsDown, nsUp, nsSigningOn, nsLoggedIn, nsEventProcessing, nsRepair, nsReceiveFax); {!!.J}
  522.   TUserStatus = (usNone, usFileTransfer, usEnteringMsg, usInDoor, usInDOS, usPChat, usDChat);
  523.   TSysWindow  = (swNoWindow, swSingleWindow, swOrigWindow, swBigWindow);
  524.  
  525.   PNodeInfo = ^TNodeInfo;
  526.   TNodeInfo = record
  527.                 Security      : String[10];
  528.                 NodeStatus    : TNodeStatus;
  529.                 UserStatus    : TUserStatus;
  530.                 SysWindow     : TSysWindow;
  531.                 CallersName   : String[25];
  532.                 From          : String[30];
  533.                 PrevCaller    : String[50];
  534.                 UserID        : LongInt;
  535.                 BaudRate      : LongInt;
  536.                 TimeCalled,
  537.                 PrevLogOff,
  538.                 TimeOff       : DateTimeRec;
  539.                 RequestNode   : Integer;
  540.                 CallerNumber,
  541.                 nFlags,
  542.                 QuoteIndex,
  543.                 LowestBaud    : LongInt;
  544.                 CurStatus     : String[20];
  545.                 {CurDoor,
  546.                 {CurConf       : Word;}
  547.                 NumberOfCalls : LongInt;
  548.                 Reserved      : array [1..50] of Byte;
  549.               end;
  550.  
  551. (***** User database (ALLUSERS.DAT) **************************************)
  552.  
  553. const
  554.   ufNeverDelete      = $00000001;
  555.   ufChatPage         = $00000002;
  556.   ufHotKey           = $00000004;
  557.   ufLockedOut        = $00000008;
  558.   ufQuoteOnReply     = $00000010;
  559.   ufBellAtLogin      = $00000020;
  560.   ufNoPrivMail       = $00000040;
  561.   ufNoDelMail        = $00000080;
  562.   ufTCNoPvtExport    = $00000100;
  563.   ufTCSendFromYou    = $00000200;
  564.   ufTCSendNewFiles   = $00000400;
  565.   ufTCSendNewBulls   = $00000800;
  566.   ufTCUploadHangup   = $00001000;
  567.   ufTCAllAttachments = $00002000;
  568.   ufTCScanPrivate    = $00004000;
  569.   ufTCScanFaxes      = $00008000;
  570.   ufTCScripts        = $00010000;
  571.   ufSortedLists      = $00020000;
  572.   ufCrashMail        = $00040000;
  573.   ufFileAttach       = $00080000;
  574.   ufCaptureUser      = $00100000;
  575.   ufSevenBitAscii    = $00200000;
  576.  
  577. const
  578.   cufSysopMail    = $01;
  579.   cufSelected     = $02;
  580.   cufLockedOut    = $04;
  581.   cufTitleOff     = $08;
  582.   cufPersonalOnly = $10;
  583.   cufScanAll      = $20;
  584.  
  585. type
  586.   TPacketType = (pText, pQwk);
  587.   TAutoPilot  = (apUpDn, apDnUp);
  588.  
  589. type
  590.   TUserConfRecType = (ucrIndex, ucrData);
  591.  
  592.   PUserConfData = ^TUserConfData;
  593.   TUserConfData = record
  594.                     cuFlags       : Byte;
  595.                     cuLastRead    : Word;
  596.                     cuFirstUnread : Word;
  597.                   end;
  598.  
  599.   PUserConfArray = ^TUserConfPage;
  600.   TUserConfArray = array [0..1023] of TUserConfData;
  601.  
  602.   PUserConfPageHeader = ^TUserConfPageHeader;
  603.   TUserConfPageHeader = record
  604.                           RecLen   : Word;
  605.                           RecType  : TUserConfRecType;
  606.                           UserID   : LongInt;
  607.                           Page     : Integer;
  608.                           This     : Longint;
  609.                         end;
  610.  
  611.   PUserConfPage = ^TUserConfPage;
  612.   TUserConfPage = record
  613.                     RecLen       : Word;
  614.                     RecType      : TUserConfRecType;
  615.                     UserID       : LongInt;
  616.                     Page         : Integer;
  617.                     This         : Longint;
  618.                     UserConfData : TUserConfArray;
  619.                   end;
  620.  
  621.   TUserConfIndex = record
  622.                      RecLen  : Word;
  623.                      RecType : TUserConfRecType;
  624.                      offsets : array [0..31] of Longint;
  625.                    end;
  626.  
  627. type
  628.   TEditor         = (ePrompt, eNormal, eFullScreen);
  629.   TMorePrompt     = (mpErasePrompt, mpNextLine);
  630.   TFileDisplay    = (fdSingleLine, fdDoubleLine, fdFull);
  631.   TExpertiseLevel = (elNovice, elRegular, elExpert);
  632.   TSex            = (sUnKnown, sMale, sFemale);
  633.   TMsgDisplay     = (mdScroll, mdClear, mdHeader);
  634.   TScrnDisplay    = (sdNoColor, sdColor, sdRip, sdAuto);
  635.   TProtocol       = (pAll, pXmodem, pXmodemCRC, pYmodem, pYmodemG, pXmodem1K,
  636.                      pXmodem1KG, pKermit, pZmodem, pAscii, pExt1, pExt2, pExt3,
  637.                      pExt4, pExt5, pExt6, pExt7, pExt8, pExt9, pExt10);
  638.  
  639.   TSecondarys = array[1..5] of String[10];
  640.  
  641.   PUserRec = ^TUserRec;
  642.   TUserRec = object
  643.                Status               : LongInt;
  644.                UserName             : String[25];
  645.                From                 : String[30];
  646.                Password             : String[14];
  647.                UserID               : LongInt;
  648.                PhoneNumber,
  649.                DataNumber,
  650.                FaxNumber,
  651.                ComputerType         : String[15];
  652.                SecLevel             : String[10];
  653.                Secondary            : TSecondarys;
  654.                Company,
  655.                Address1,
  656.                Address2,
  657.                City                 : String[30];
  658.                State                : String[15];
  659.                Zip                  : String[10];
  660.                Country              : String[25];
  661.                Title                : String[10];
  662.                Alias                : String[25];
  663.                NovellName           : String[8];
  664.                Language             : String[8];
  665.                Comment              : array [1..5] of String[30];
  666.                Sex                  : TSex;
  667.                Editor               : TEditor;
  668.                MorePrompt           : TMorePrompt;
  669.                Xpert                : TExpertiseLevel;
  670.                TransferMethod       : TProtocol;
  671.                ScreenDisplay        : TScrnDisplay;
  672.                FileDisplay          : TFileDisplay;
  673.                MsgDisplay           : TMsgDisplay;
  674.                LinesPerPage         : Byte;
  675.                LastCall,
  676.                LastNewFiles         : DateTimeRec;
  677.                ExpireDate,
  678.                MemoDate,
  679.                UserSince,
  680.                BirthDate            : Date;
  681.                ActiveConf,
  682.                MsgsWritten,
  683.                Uploads,
  684.                Downloads,
  685.                TimesOn,
  686.                TimeLeft             : Word;
  687.                UFlags,
  688.                DailyDL,
  689.                DailyDK,
  690.                TotalUK,
  691.                TotalDK,
  692.                MinutesLogged,
  693.                SubScriptionBalance,
  694.                NetMailBalance       : LongInt;
  695.                TCAutoPilot          : TAutoPilot;
  696.                TCPacket             : TPacketType;
  697.                TCPacker             : Char;
  698.                TCMaxPerConf         : Word;
  699.                TCMaxPerPacket       : Word;
  700.                TCMaxAttachSize      : Word;
  701.                UserConfData         : Longint;
  702.                Reserved             : array [1..50] of Byte;
  703.              end;
  704.  
  705. (***** Message files (MSGxxx.IX) *****************************************)
  706.  
  707. const
  708.   mfPrivate     = $0001;
  709.   mfReceiveable = $0002;
  710.   mfReceived    = $0004;
  711.   mfReceipt     = $0008;
  712.   mfCarboned    = $0010;
  713.   mfForwarded   = $0020;
  714.   mfEchoFlag    = $0040;
  715.   mfHasReplies  = $0100;
  716.   mfDeleted     = $0200;
  717.   mfTagged      = $0400;
  718.   mfSent        = $0800;
  719.  
  720. type
  721.   TFidoAddress = record
  722.                    Zone,
  723.                    Net,
  724.                    Node,
  725.                    Point : Word;
  726.                  end;
  727.  
  728.   PMsgText = ^TMsgText;
  729.   TMsgText = array [0..65519] of Char;
  730.  
  731.   PMsgHeader = ^TMsgHeader;
  732.   TMsgHeader = record
  733.                  MagicNumber    : Longint;
  734.                  MsgNumber      : Word;
  735.                  Orig           : String[70];
  736.                  OrigTitle      : String[10];
  737.                  OrigUserID     : LongInt;
  738.                  Dest           : String[70];
  739.                  DestTitle      : String[10];
  740.                  DestUserID     : LongInt;
  741.                  Subject        : String[70];
  742.                  Network        : String[8];
  743.                  MsgTime        : DateTimeRec;
  744.                  ReadTime       : DateTimeRec;
  745.                  mFlags         : Word;
  746.                  Reference      : Word;
  747.                  FidoFrom       : TFidoAddress;
  748.                  FidoTo         : TFidoAddress;
  749.                  MsgBytes       : Word;
  750.                  InternalAttach : String[12];
  751.                  ExternalAttach : String[12];
  752.                  PrevUnread     : Word;
  753.                  NextUnread     : Word;
  754.                  FidoFlags      : Word;
  755.                  Reserved       : array [1..24] of Byte;
  756.                end;
  757.  
  758.   TMsgIndexHeader = record { must be same size as TMsgIndexEntry }
  759.                       RecordSize    : Word;
  760.                       ActiveRecords : Word;
  761.                       NextMsgNumber : Word;
  762.                     end;
  763.  
  764.   TMsgIndexEntry = record { must be same size as TMsgIndexHeader }
  765.                      MsgNumber    : Word;
  766.                      HeaderOffset : Longint;
  767.                    end;
  768.  
  769. (***** File database (ALLFILES.DAT) **************************************)
  770.  
  771. const
  772.   fiNeverOverwrite   = $0001;
  773.   fiNeverDelete      = $0002;
  774.   fiDontCharge       = $0004;
  775.   fiUploadInProgress = $0008;
  776.   fiOnCD             = $0010;
  777.   fiOffLine          = $0020;
  778.   fiFailedScan       = $0040;
  779.   fiFreeTime         = $0080;
  780.  
  781. type
  782.   PFileMsgText = ^TFileMsgText;
  783.   TFileMsgText = array [0..1200] of Byte;
  784.   TKeyArray    = array [1..6] of String[10];
  785.  
  786.   PFileRec = ^TFileRec;
  787.   TFileRec = record
  788.                Status,
  789.                Size         : LongInt;
  790.                FileName     : String[12];
  791.                Password     : String[14];
  792.                FileTime,
  793.                LastAccessed : DateTimeRec;
  794.                Uploader     : String[25];
  795.                UploaderID   : LongInt;
  796.                Desc         : String[75];
  797.                MsgBytes,
  798.                fFlags,
  799.                NumOfAccess,
  800.                Cost,
  801.                Area         : Word;
  802.                Keywords     : TKeyArray;
  803.                StoredPath   : PathStr;
  804.                MsgText      : TFileMsgText;
  805.              end;
  806.  
  807.   PFileHeader = ^TFileHeader;
  808.   TFileHeader = record
  809.                   Status,
  810.                   Size         : LongInt;
  811.                   FileName     : String[12];
  812.                   Password     : String[14];
  813.                   FileTime,
  814.                   LastAccessed : DateTimeRec;
  815.                   Uploader     : String[25];
  816.                   UploaderID   : LongInt;
  817.                   Desc         : String[75];
  818.                   MsgBytes,
  819.                   fFlags,
  820.                   NumOfAccess,
  821.                   Cost,
  822.                   Area         : Word;
  823.                   Keywords     : TKeyArray;
  824.                   StoredPath   : PathStr;
  825.                 end;
  826.  
  827. (***** Menu file (xxx.MNU) ***********************************************)
  828.  
  829. type
  830.   TMenuCommand = (
  831.   (***** Main menu *****)
  832.     cmBulletins,
  833.     cmDoorMenu,
  834.     cmSysopComment,
  835.     cmPageSysop,
  836.     cmShowHellos,
  837.     cmQuestionnaires,
  838.     cmLocateUser,
  839.     cmChangeSettings,
  840.     cmStatistics,
  841.     cmUsersList,
  842.     cmNewsLetter,
  843.     cmWhoIsOnline,
  844.   (***** Message menu *****)
  845.     cmReadMessage,
  846.     cmScanMessages,
  847.     cmEnterMessage,
  848.     cmDeleteMessage,
  849.     cmCheckMailAtMenu,
  850.     cmUpdateConfScans,
  851.     cmMailDoor,
  852.   (***** File menu *****)
  853.     cmFullFileInfo,
  854.     cmListFilesByArea,
  855.     cmDownloadFiles,
  856.     cmUploadFiles,
  857.     cmListFilesByDate,
  858.     cmSearchFiles,
  859.     cmFileStats,
  860.     cmPersonalStats,
  861.     cmViewArcFile,
  862.     cmReadAFile,
  863.     cmEditMarkList,
  864.   (***** Sysop menu *****)
  865.     cmManageEvents,
  866.     cmEditUserRec,
  867.     cmReadActLog,
  868.     cmEraseActLog,
  869.     cmEditFileRec,
  870.     cmSysopStatus,
  871.     cmEditNodes,
  872.     cmSysopDownload,
  873.     cmSysopUpload,
  874.   (***** Global options *****)
  875.     cmChangeConference,
  876.     cmRunQuesFile,
  877.     cmXpertLevel,
  878.     cmDumpHelpFile,
  879.     cmDisplayMenuFile,
  880.     cmDisplayDispFile,
  881.     cmDisplayTxtFile,
  882.     cmDisplayBulletin,
  883.     cmLogoffUser,
  884.     cmRunScript,
  885.     cmGotoMenu,
  886.     cmMenuHook,
  887.     cmStackCommands,
  888.     cmPageUser,
  889.     cmReturnPressed,
  890.     cmInvalidCommand
  891.   );
  892.  
  893. const
  894.   MaxMenuItems = 40;
  895.  
  896.   mufChangeConf = $01;
  897.   mufTopLevel   = $02;
  898.  
  899. type
  900.   PMenuItem = ^TMenuItem;
  901.   TMenuItem = record
  902.                 Selection   : Char;
  903.                 CommandDesc : String[30];
  904.                 CommandId   : TMenuCommand;
  905.                 CommandParm : Boolean;
  906.                 CommandStr  : String[40];
  907.                 CommandNum  : Word;
  908.               end;
  909.  
  910.   PMenuRec = ^TMenuRec;
  911.   TMenuRec = record
  912.                SecAccess  : TArray1000Bits;
  913.                MenuFields : Byte;
  914.                MenuDesc   : String[35];
  915.                MenuFile   : String[8];
  916.                ConfNumber : Word;
  917.                muFlags    : Byte;
  918.                MenuItem   : array [1..MaxMenuItems] of TMenuItem;
  919.              end;
  920.  
  921. (***** Event file (EVENTxxx.DAT) *****************************************)
  922.  
  923. const
  924.   etSun = $01;
  925.   etMon = $02;
  926.   etTue = $04;
  927.   etWed = $08;
  928.   etThu = $10;
  929.   etFri = $20;
  930.   etSat = $40;
  931.  
  932. type
  933.   TEventMethod   = (emFlex, emSoft, emHard);
  934.   TEventShell    = (esShell, esTerminate);
  935.   TEventSchedule = (esHourly, esDaily, esMonthly, esYearly);
  936.   TEventAction   = (eaNoPage, eaResetStats, eaRunBatch, eaAllPageOff,
  937.                     eaNodePage, eaDosNext, eaAllPageOn, eaBaudLimit,
  938.                     eaRunScript, eaBellOn, eaBellOff, eaAllBellOn,
  939.                     eaAllBellOff);  {!!.P}
  940.  
  941.   PEvent = ^TEvent;
  942.   TEvent = record
  943.              Method     : TEventMethod;
  944.              Action     : TEventAction;
  945.              BaudRate   : LongInt;
  946.              Active     : Boolean;
  947.              NextExec,
  948.              LastExec   : DateTimeRec;
  949.              DayBitSet  : Byte;
  950.              ShellType  : TEventShell;
  951.              BatchPath  : PathStr;
  952.              Schedule   : TEventSchedule;
  953.              HourDelay  : Byte;
  954.              DayOfMonth : Byte;
  955.              Month      : Byte;
  956.            end;
  957.  
  958.  
  959. (***** Chat file data (CHANNELS.DAT) *************************************)
  960.  
  961. type
  962.   TChannelStatus = (csNotInUse, csPublic, csPrivate, csModerated, csPriMod);
  963.  
  964.   PChannelRecord = ^TChannelRecord;
  965.   TChannelRecord = record
  966.                      FName      : String[8];
  967.                      DispFile   : String[8];
  968.                      Name       : String[25];
  969.                      ModName    : String[25];
  970.                      ActionFile : String[8];
  971.                      Topic      : String[30];
  972.                      ChanStatus : TChannelStatus;
  973.                      Moderator  : Word;
  974.                      Users      : Word;
  975.                      MaxUsers   : Word;
  976.                      LogChannel : Boolean;
  977.                      Profanity  : Boolean;
  978.                      SecAccess  : TArray1000Bits;
  979.                    end;
  980.  
  981. (***** Action word file (*.ACT) ******************************************)
  982.  
  983. type
  984.   PActionRecord = ^TActionRecord;
  985.   TActionRecord = record
  986.                     KeyWord      : String[10];
  987.                     ToOriginator : String[80];
  988.                     ToTarget     : String[80];
  989.                     ThirdPerson  : String[80];
  990.                     NoTarget     : String[80];
  991.                   end;
  992.  
  993. implementation
  994.  
  995. end.
  996.